#ifndef GUI_H
#define GUI_H

#include <gtk/gtk.h>
#include <glade/glade.h>
#include <goocanvas.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <string.h>
#include <math.h>

#ifdef __WINDOWS__
   #define EXPORT __declspec (dllexport)
#else
   #define EXPORT
#endif

#include "compile_opts.h"

//DEVRAIT ETRE PRIS DE CORE.H*/
#include "misc_tools.h"

#define AA 200
#define BB 15
#define CC 15
#define ESC 30

typedef struct aero{
        char *nom_aero;
        int numero;
        int piste;
        int pisteused;
        int place;
        int attente;
        int acces;
        int duree;
        int collision;
        int boucle;
        int x, y;  /* position aeroport sur carte */
}t_areoport;
        
typedef struct cell{
        int villedepart;
        int villearrivee;
        int distance;
        
}t_chemin;

typedef struct avion{
        int identifiant; /* id unique de l'avion */
        int depart;
        int arrivee;
        int caburant; /* capacit�de l'avion */
        int consommation; /* Consommation en litre (km) sur un chemin */
        int x, y;   /* x contient km parcourus, y contient chemin en pourcentage */
        int escale[ESC];
        int sol_air; /* 0 = sol / 1 = air */
        int station; /* 0 = non / 1 = oui */
        int piste;  
        int boucle;
        int aterrissage;
        int pistef;
        int attente;
        int envol;
        int stationf;
        //int etat[8][1];
}t_avion;  

typedef struct Floyd_calculus{
        int D[CC][CC];
        int key[CC][CC]; 
        int ch[AA][BB];       
}t_floyd;   

typedef struct utils{
      t_areoport **aeroport;
      t_chemin **trajet;
      t_avion **avion;
      t_avion **dcol_avion;
     
      FILE *faero;
      FILE *fchem;
     
      char chaine_aero[1000];
      char chaine_trajet[1000];
      char *temp;
      int temp2;
      int nbaero;
      int nbtrajet;
      int i,j,z,h,g,m;
      int avions_totals;
      int avions_siml;
      int seed;
      int avions_capacite[3];
      int ut;
      int to_decol; 
      int if_good_destination;
      int *possible;
      t_floyd *flw;
      int somm_decol;
      int redec;        
      int determine_fin;
      int nbut;
      int finished;
}t_utils;


//important que cette include soit après les DEBUG et et USE_GUI parce qu'il les utilise
#include "gui_globals.h"


#include "gui_funcs.h"

#include "gui_callbacks.h"

#define AB msg("trace_point\n");


#endif
